package com.vogue.supplymall.shop.domain.service;

import com.vogue.supplymall.common.domain.dto.RelevanceInfo;
import com.vogue.supplymall.common.domain.validate.Regex;
import com.vogue.supplymall.shop.domain.model.Relevance;

import java.util.List;
import java.util.Map;

/**
 * The interface Relevance service.
 *
 * @aouthor: zhangliang
 * @date: Create in 2018-03-28
 */
public interface RelevanceService extends BaseService<Relevance, Long> {

    /**
     * Add relevance relevance.
     * 关注、收藏商品、店铺
     *
     * @param relevanceInfo the relevance info
     * @return the relevance
     */
    Relevance addRelevance(RelevanceInfo relevanceInfo);


    /**
     * Search product watch list.
     * 商品关注检索
     *
     * @param relevanceInfo the relevance info
     * @return the list
     */
    List<Map<String, Object>> searchProductWatch(RelevanceInfo relevanceInfo);

    /**
     * Search shop watch list.
     * 店铺关注检索
     *
     * @param relevanceInfo the relevance info
     * @return the list
     */
    List<Map<String, Object>> searchShopWatch(RelevanceInfo relevanceInfo);

    /**
     * Count relevance map.
     * 用户关注商品和店铺的统计数量--我得页面
     *
     * @param relevanceInfo the relevance info
     * @return the map
     */
    Map<String, Object> countRelevance(RelevanceInfo relevanceInfo);

    /**
     * Remove watch boolean.
     * 取消关注
     *
     * @param relevanceInfo the relevance info
     * @return the boolean
     */
    Boolean removeWatch(RelevanceInfo relevanceInfo);

    Boolean removeWatchs(RelevanceInfo relevanceInfo);
}
